#define _CRT_SECURE_NO_WARNINGS

//#include <stdio.h>
//#include <stdlib.h>
//
//int main()
//{
//	int* arr = (int*)malloc(5 * sizeof(int));
//	if (arr == NULL)
//	{
//		perror("malloc");
//		return 1;
//	}
//	for (int i = 0; i < 5; i++)
//	{
//		arr[i] = i + 1;
//		printf("%d ", arr[i]);
//	}
//	free(arr);
//	arr = NULL;
//
//	return 0;
//}

//#include <stdio.h>
//#include <stdlib.h>
//
//int main()
//{
//	int* arr = (int*)calloc(5, sizeof(int));
//	if (arr == NULL)
//	{
//		perror("calloc");
//		return 1;
//	}
//	for (int i = 0; i < 5; i++)
//	{
//		printf("%d ", arr[i]);
//	}
//	free(arr);
//	arr = NULL;
//	return 0;
//}

//#include <stdio.h>
//#include <stdlib.h>
//#include <string.h>
//
//void GetMemory(char* p)
//{
//	p = (char*)malloc(100);
//}
//
//int main()
//{
//	char* str = NULL;
//	GetMemory(str);
//	strcpy(str, "hello world");
//	printf(str);
//	return 0;
//}

//#include <stdio.h>
//#include <stdlib.h>
//#include <string.h>
//
//void GetMemory(char** p)
//{
//	*p = (char*)malloc(100);
//}
//
//int main()
//{
//	char* str = NULL;
//	GetMemory(&str);
//	strcpy(str, "hello world");
//	printf(str);
//	return 0;
//}
//
//#include <stdio.h>
//#include <stdlib.h>
//#include <string.h>
//
//char* GetMemory(void)
//{
//	char p[] = "hello world";
//	return p;
//}
//
//int main()
//{
//	char* str = NULL;
//	str = GetMemory();
//	printf(str);
//	return 0;
//}

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
	char* str = (char*)malloc(100);
	strcpy(str, "hello");
	free(str);
	if (str != NULL)
	{
		strcpy(str, "world");
		printf(str);
	}
	return 0;
}